package plg.grupo1.Sintactico;

import java.util.ArrayList;

public class CraracterExpecials {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ArrayList<String> A = new ArrayList<String>();
		A.add("Empezamos");
		A.addAll(getHexadecimal());
		for (String string : A) {
			System.out.println( string + "\\par");
		}

	}

	private static String PasaloALetraMayuscula(int i) {
		switch (i) {
		case 10:
			return "A";
		case 11:
			return "B";
		case 12:
			return "C";
		case 13:
			return "D";
		case 14:
			return "E";
		case 15:
			return "F";
		default:
			return "A";
		}
	}
	private static String PasaloALetraminuscula(int i) {
		switch (i) {
		case 10:
			return "a";
		case 11:
			return "b";
		case 12:
			return "c";
		case 13:
			return "d";
		case 14:
			return "e";
		case 15:
			return "f";
		default:
			return "a";
		}
	}
	
	public static ArrayList<String> getHexadecimal00Aa(){
	ArrayList<String> salida=new ArrayList<String>();
	String Destino=null;
	for (int i = 0; i < 10; i++) {
		Destino="\\'" + Integer.toString(i);
		for (int j = 0; j < 16; j++) {
			if (j>9){
				salida.add(Destino + PasaloALetraMayuscula(j));
				salida.add(Destino + PasaloALetraminuscula(j));
			}
			else salida.add(Destino + Integer.toString(j));
		}
	}
	
	return salida;
	}
	
	
	public static ArrayList<String> getHexadecimalA0Aa(){
		ArrayList<String> salida=new ArrayList<String>();
		String Destino=null;

		for (int i = 10; i < 16; i++) {
			Destino="\\'" + PasaloALetraMayuscula(i);
			for (int j = 0; j < 16; j++) {
				if (j>9){
					salida.add(Destino + PasaloALetraMayuscula(j));
					salida.add(Destino + PasaloALetraminuscula(j));
				}
				else salida.add(Destino + Integer.toString(j));
			}
		}
		
		
		return salida;
		}
	
	public static ArrayList<String> getHexadecimala0Aa(){
		ArrayList<String> salida=new ArrayList<String>();
		String Destino=null;
		
		for (int i = 10; i < 16; i++) {
			Destino="\\'" + PasaloALetraminuscula(i);
			for (int j = 0; j < 16; j++) {
				if (j>9){
					salida.add(Destino + PasaloALetraMayuscula(j));
					salida.add(Destino + PasaloALetraminuscula(j));
				}
				else salida.add(Destino + Integer.toString(j));
			}
		}
		
		return salida;
		}
	
	public static ArrayList<String> getHexadecimal(){
		ArrayList<String> salida=new ArrayList<String>();
		String Destino=null;
		for (int i = 0; i < 10; i++) {
			Destino="\\'" + Integer.toString(i);
			for (int j = 0; j < 16; j++) {
				if (j>9){
					salida.add(Destino + PasaloALetraMayuscula(j));
					salida.add(Destino + PasaloALetraminuscula(j));
				}
				else salida.add(Destino + Integer.toString(j));
			}
		}
		
		for (int i = 10; i < 16; i++) {
			Destino="\\'" + PasaloALetraMayuscula(i);
			for (int j = 0; j < 16; j++) {
				if (j>9){
					salida.add(Destino + PasaloALetraMayuscula(j));
					salida.add(Destino + PasaloALetraminuscula(j));
				}
				else salida.add(Destino + Integer.toString(j));
			}
		}
		
		for (int i = 10; i < 16; i++) {
			Destino="\\'" + PasaloALetraminuscula(i);
			for (int j = 0; j < 16; j++) {
				if (j>9){
					salida.add(Destino + PasaloALetraMayuscula(j));
					salida.add(Destino + PasaloALetraminuscula(j));
				}
				else salida.add(Destino + Integer.toString(j));
			}
		}
		
		return salida;
		}
}
